Siguiendo con las utilidades de línea de comandos he descubierto un par de opciones de lo más interesantes -aunque algo frikis. En primer lugar, una que viene instalada por defecto en los sistemas Linux: script (y scriptreplay).
Es importante destacar que sólo se guarda en el fichero lo que se muestra por pantalla; es decir, se guarda lo que escribimos y el resultado de los comandos que ejecutamos, pero no se guardan las contraseñas, por ejemplo, ya que no aparecen por pantalla cuando se introducen.
La posibilidad de guardar los comandos y el resultado de los mismos convierte a la pareja script/scriptreplay en una sencilla pero potente herramienta de formación y/o documentación.
Como script sólo guarda texto, una sesión de trabajo de horas se reduce a un fichero de unos pocos kilobytes de información, en vez de los muchos megas o gigas que ocuparía la grabación de una sesión similar en vídeo.
Así podemos ponernos a realizar una instalación muy complicada o un proceso muy largo y registrar toda nuestra actividad. Y si hemos ido probando cosas hasta acertar con la "buena", tener guardado un registro de todo lo que hemos hecho puede ser un salvavidas para cuando tengamos que volver a realizar el mismo proceso más adelante o para generar documentación.
Usado de esta manera tendremos un registro de los comandos lanzados y de su resultado, pero como no guardamos la información temporal asociada, no podremos reproducir el fichero con scriptreplay después.
En este fichero encontraremos algunos caracteres extraños que corresponden a información interna de script (códigos de control de tiempo, saltos de línea, etc...). Aunque molestan a la hora de leer el fichero, no impiden hacerse una idea de qué es lo que se ha estado haciendo y cuál ha sido el resultado, por lo que nos sirve como registro de actividad, por ejemplo...
Finalmente, el segundo parámetro es el nombre del fichero donde guardamos el registro de salida de script; si no lo especificamos se llamará typescript por defecto. Sin embargo, creo que es una buena práctica llamar del mismo modo la información temporal y el registro de la sesión, especialmente si queremos guardar de forma ordenada el registro de nuestras sesiones de trabajo.
El resultado sería algo así:
Para reproducir el fichero, usaremos:
Una de las pegas de scriptreplay es que no puede cambiarse la velocidad de reproducción sobre la marcha...
Pero para eso está ttyrec y ttyplay!
La mayor ventaja de ttyrec es que permite aumentar o disminuir la velocidad de reproducción de manera interactiva... En la página del desarrollador se muestra un link a un reproductor web de sesiones grabadas escrito en Java, pero parece que ya no está disponible.
Lo que sí que parece estar todavía disponible es IPBT, un reproductor de ficheros tty que permite acceso aleatorio a cualquier momento de la "grabación".
Las grabaciones realizadas con ttyrec contienen en el mismo fichero la información temporal y la grabación propiamente dicha, lo que también es una ventaja con respecto a script. A cambio, es necesario instalar el software (no viene incluido de fábrica, lo que quizás no sea posible en todos los entornos).
script / scriptreplay
El comando script guarda una copia de todo lo que aparece en la ventana del terminal y lo guarda en un archivo. Es un/a taquígrafa digital que deja mecanografía todo lo que se dice en una pantalla.Es importante destacar que sólo se guarda en el fichero lo que se muestra por pantalla; es decir, se guarda lo que escribimos y el resultado de los comandos que ejecutamos, pero no se guardan las contraseñas, por ejemplo, ya que no aparecen por pantalla cuando se introducen.
La posibilidad de guardar los comandos y el resultado de los mismos convierte a la pareja script/scriptreplay en una sencilla pero potente herramienta de formación y/o documentación.
Como script sólo guarda texto, una sesión de trabajo de horas se reduce a un fichero de unos pocos kilobytes de información, en vez de los muchos megas o gigas que ocuparía la grabación de una sesión similar en vídeo.
Así podemos ponernos a realizar una instalación muy complicada o un proceso muy largo y registrar toda nuestra actividad. Y si hemos ido probando cosas hasta acertar con la "buena", tener guardado un registro de todo lo que hemos hecho puede ser un salvavidas para cuando tengamos que volver a realizar el mismo proceso más adelante o para generar documentación.
Usando script
Podemos lanzar el comando script tal cual; por defecto el contenido de lo que se muestre en pantalla se guardará en un fichero llamado typescript.Usado de esta manera tendremos un registro de los comandos lanzados y de su resultado, pero como no guardamos la información temporal asociada, no podremos reproducir el fichero con scriptreplay después.
En este fichero encontraremos algunos caracteres extraños que corresponden a información interna de script (códigos de control de tiempo, saltos de línea, etc...). Aunque molestan a la hora de leer el fichero, no impiden hacerse una idea de qué es lo que se ha estado haciendo y cuál ha sido el resultado, por lo que nos sirve como registro de actividad, por ejemplo...
Usando script con registro de tiempo
Para poder reproducir más tarde el registro generado por script, necesitamos un registro temporal de lo que hemos hecho. Para ello, lanzamos el comando script de la siguiente manera:script -t 2> sesion.timing sesion.recAñadimos -t para indicar que queremos guardar la información temporal; después con 2> sesion.timing redirigimos la información de tiempos al fichero sesion.timing (puedes usar cualquier nombre).
Finalmente, el segundo parámetro es el nombre del fichero donde guardamos el registro de salida de script; si no lo especificamos se llamará typescript por defecto. Sin embargo, creo que es una buena práctica llamar del mismo modo la información temporal y el registro de la sesión, especialmente si queremos guardar de forma ordenada el registro de nuestras sesiones de trabajo.
El resultado sería algo así:
Para reproducir el fichero, usaremos:
scriptreplay sesion.timing sesion.recEsto reproducirá la sesión grabada a la misma velocidad a la que la hemos grabado. scriptreplay permite añadir un tercer parámetro llamado divisor que permite indicar a qué velocidad se reproduce el script grabado. Así, scriptreplay sesion.timing sesion.rec 2 se reproducirá al doble de la velocidad inicial, mientras que scriptreplay sesion.timing sesion.rec 0.1 lo reproducirá 10 veces más lento...
Una de las pegas de scriptreplay es que no puede cambiarse la velocidad de reproducción sobre la marcha...
Pero para eso está ttyrec y ttyplay!
La mayor ventaja de ttyrec es que permite aumentar o disminuir la velocidad de reproducción de manera interactiva... En la página del desarrollador se muestra un link a un reproductor web de sesiones grabadas escrito en Java, pero parece que ya no está disponible.
Lo que sí que parece estar todavía disponible es IPBT, un reproductor de ficheros tty que permite acceso aleatorio a cualquier momento de la "grabación".
Las grabaciones realizadas con ttyrec contienen en el mismo fichero la información temporal y la grabación propiamente dicha, lo que también es una ventaja con respecto a script. A cambio, es necesario instalar el software (no viene incluido de fábrica, lo que quizás no sea posible en todos los entornos).
Nota: script también está instalado en sistemas Mac, pero no existe la posibilidad de reproducir la grabación, ya que el comando scriptreplay no está presente por algún motivo :(
Comentarios